home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Night Owl 6
/
Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso
/
001a
/
nsyscnvt.zip
/
NSYSCNVT.PAS
< prev
Wrap
Pascal/Delphi Source File
|
1991-10-21
|
4KB
|
182 lines
Program NanetSysConvert;
{ Program Written 10/8/91 by Reuben Sumner
Copyright 1991 By Reuben Sumner
The following program and source code can be distributed and used freely }
Uses
Dos;
Type
brates = (b300,b1200,b2400,b4800,b9600,b19200,b38400,b57600,b115200);
ddf_header = Record
id : LongInt; { Should be $2E2B291A }
ddf_ver : Integer; { 1 }
num_entries : Integer; { 1 to 1000 }
pencrypted : Byte; { 0 }
spare : string[54]; { total size 64 bytes }
End;
dd_entry = Record
Name : Array [1..25] of Char;
Number : Array [1..17] of Char;
Baud : brates;
Parity, { 0 = N 1 = E 2 = O }
Data, { 7 or 8 }
Stop : Byte; { 1 or 2 }
Script : Array [1..12] of Char;
LastCall : Array [1..6] of Char;
TotCalls : Word;
Terminal : Byte;
Protocol : Char;
Toggles : Byte; { 0 }
Filler1, Filler2 : Byte;
DPrefNum : Byte; { Dialing Prefix }
Password : Array [1..14] of Char;
End;
Var
LocalArea : String[3];
LocalOnly : Boolean;
FonName : PathStr;
NSysName : PathStr;
Baud : brates;
Procedure Welcome;
Begin
WriteLn ('NANET.SYS ---> TELIX.FON Converter');
WriteLn ('Copyright 1991 By Reuben Sumner');
End;
Procedure GetUserData;
Function FExist (name : PathStr) : Boolean;
Var
f : File;
Begin
Assign (f,name);
{$I-}
Reset (f);
{$I+}
If IOResult <> 0 Then FExist := False
Else Begin
Close (f);
FExist := True;
End;
End;
Var
Line : String;
Ok : Boolean;
Begin
WriteLn;
Ok := True;
Repeat
Write ('Please input NANET.SYS filename: [NANET.SYS] ');
ReadLn (Line);
If Line = '' Then Line := 'NANET.SYS';
If Not FExist (Line) Then Begin
Ok := False;
WriteLn ('Error could not open file, please reenter');
End;
Until Ok;
NSysName := Line;
Write ('Please input TELIX.FON filename: [TELIX.FON] ');
ReadLn (Line);
If Line = '' Then FonName := 'TELIX.FON'
Else FonName := Line;
Write ('Enter local area code: ');
ReadLn (LocalArea);
Write ('Should local phone numbers ONLY be included? (Y/N): [N] ');
ReadLn (Line);
If (UpCase (Line[1]) = 'Y') Then LocalOnly := True
Else LocalOnly := False;
Write ('Enter choice of baud rate: ');
ReadLn (Line);
If Line = '300' Then Baud := b300
Else If Line = '1200' Then Baud := b1200
Else If Line = '2400' Then Baud := b2400
Else If Line = '4800' Then Baud := b4800
Else If Line = '9600' Then Baud := b9600
Else If Line = '19200' Then Baud := b19200
Else If Line = '38400' Then Baud := b38400
Else Begin
WriteLn ('Unregognized baud rate, assuming 2400');
Baud := b2400;
End;
End;
Procedure ConvertNSys;
Var
sys : text;
fon : file;
h : ddf_header;
Entry : dd_entry;
Line : String;
Begin
FillChar (Entry,SizeOf(Entry),0);
Entry.Baud := Baud;
{ Entry.Parity := 0;}
Entry.Data := 8;
Entry.Stop := 1;
{ Entry.Script[1] := #0;}
{ Entry.LastCall[1] := #0;}
{ Entry.TotCalls := 0;}
Entry.Terminal := 1;
Entry.Protocol := 'Z';
{ Entry.Toggles := 0;}
Entry.DPrefNum := 1;
{ Entry.Password[1] := #0;}
h.id := $2E2B291A;
h.ddf_ver := 1;
h.pencrypted := 0;
h.num_entries := 0;
Assign (fon,FonName);
Assign (sys,NSysName);
Reset (sys);
Rewrite (fon,1);
BlockWrite (fon,h,sizeof(h));
While Not (Eof (sys)) Do Begin
ReadLn (sys,Line);
If (Line[46] = '-') and (Length(Line) > 10) Then Begin
Move (Line[1],Entry.Name,22);
Entry.Name[23] := #0;
Inc (h.num_entries);
If Copy (Line, 43, 3) = LocalArea Then Begin
Move (Line [47], Entry.Number, 8);
Entry.Number[9] := #0;
BlockWrite (fon,Entry,SizeOf (Entry));
End Else If Not LocalOnly Then Begin
Entry.Number[1] := '1';
Entry.Number[2] := '-';
Move (Line[43],Entry.Number[3],12);
Entry.Number[15] := #0;
BlockWrite (fon,Entry,SizeOf (Entry));
End Else Dec (h.num_entries);
End;
End;
Seek (fon,0);
BlockWrite (fon,h,SizeOf (h));
Close (fon);
Close (sys);
End;
Begin
Welcome;
GetUserData;
ConvertNSys;
End.